--- title: "子2023" created: 2025-11-28 tags: - 算法 --- # 子2023 ## 题目 [子2023](https://www.lanqiao.cn/paper/4103/problem/17104/) ![[image-30b9269d.png]] ## 思路分析 暴力枚举 ```cpp #include #include #include using namespace std; string s=""; long long cnt=0; int main() { for(int i=1;i<=2023;i++){ s+=to_string(i); } // cout< using namespace std; int a[5000005]; int n=5000001; int v[8100]; int k=0; void f(int v) { while (v) { a[--n]=v%10; v=v/10; } } int main() { for (int i=2023;i>=1;i--) { f(i); } for(int i=n;i<=5000000;i++)if(a[i]==2||a[i]==0||a[i]==3)v[++k]=a[i]; long long s[5]; s[1]=0;s[2]=0;s[3]=0;s[4]=0; for(int i=1;i<=k;i++) if(v[i]==2){s[1]++;s[3]+=s[2];} else if(v[i]==0)s[2]+=s[1]; else if(v[i]==3)s[4]+=s[3]; cout< using namespace std; long long f[7000][5]; int main() { string s; string a="s2023"; s+="x"; for(int i=1;i<=2023;i++) s+=to_string(i); f[0][0]=1; int n=s.size()-1; for(int i=1;i<=n;i++) for(int j=0;j<=4;j++) { f[i][j]=f[i-1][j]; if(a[j]==s[i]) f[i][j]+=f[i-1][j-1]; } cout<